package com.iot08.api.utils;

import com.aliyun.tea.utils.StringUtils;

/**
 * @author cwj
 * @description
 * @date 2025/3/8 9:28
 **/
public class StringTool {

    /**
     * 比较字符串 "X.X.X" 版本号
     * -1:  v1 < v2
     * 0:   相等
     * 1:   v1 > v2
     * @param version1
     * @param version2
     * @return
     */
    public static int compareVersions(String version1, String version2) {
        String[] parts1 = version1.split("\\.");
        String[] parts2 = version2.split("\\.");

        int length = Math.max(parts1.length, parts2.length);

        for (int i = 0; i < length; i++) {
            int num1 = i < parts1.length ? Integer.parseInt(parts1[i]) : 0;
            int num2 = i < parts2.length ? Integer.parseInt(parts2[i]) : 0;

            if (num1 < num2) {
                return -1;
            } else if (num1 > num2) {
                return 1;
            }
        }
        return 0;
    }


    /**
     * @description 提取文件名
     * @author cwj
     * @param [url]
     * @return java.lang.String
     * @date @time 2025/3/13 9:46
     **/
    public static String obtainFileNameByUrl(String url){
        if(StringUtils.isEmpty(url)){
            return "";
        }
        //获取最后一个'/'的位置
        int lastSlashIndex = url.lastIndexOf('/');
        //提取文件名
        return url.substring(lastSlashIndex + 1);
    }

    public static String subStringByLength(String str,int n){
        if(org.springframework.util.StringUtils.isEmpty(str)) {
            return str;
        } else if(str.length() <= n){
            return str;
        } else {
            str = str.substring(0,n) + "......";
        }
        return str;
    }
    
    /**
     * @description 判断字符串是否为整数
     * @author cwj
     * @param [str]
     * @return boolean
     * @date @time 2025/6/18 14:09
     **/
    public static boolean isInteger(String str) {
        if (str == null || str.isEmpty()) return false;
        try {
            Integer.parseInt(str);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }
}
